home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 4 / Gold Medal Software - Volume 4 (Gold Medal) (1994).iso / os2 / sqav184e.arj / KAREA10E.ZIP / KILLAREA.CMD next >
OS/2 REXX Batch file  |  1994-01-11  |  4KB  |  133 lines

  1. /*     Program: KILLAREA  v1.01                           */
  2. /*     Filename: KILLAREA.CMD                             */
  3. /*      Author: Martin Mirgel, 2:2456/99@fidonet          */
  4. /*                            16:100/5529zyxelnet.org     */
  5. /*                            23:700/1@kultnet            */
  6. /*      Last change: 11.1.94                              */
  7. /*                                                        */
  8. /*      This program is freeware. Commercial use by       */
  9. /*      companies or institutions is strictly forbidden.  */
  10. /*      Selling this program on shareware-disks is not    */
  11. /*      allowed, too.                                     */
  12.  
  13.  
  14. '@echo off'
  15.  
  16. call rxfuncadd 'SYSFILETREE','REXXUTIL','SYSFILETREE'
  17. call rxfuncadd 'SYSFILEDELETE','REXXUTIL','SYSFILEDELETE'
  18.  
  19. globalFound=false
  20.  
  21. say 'KILLAREA v1.01 (C)1994 by M.Mirgel (2:2456/99@fidonet.de)'
  22.  
  23. if (arg(1,exists)=0) then do
  24.    say 'please use: KILLAREA <MESSAGECTL> <KILLAREA.TXT> [/E]'
  25.    exit
  26. end  
  27.  
  28. parse upper arg areafile killfile option
  29.  
  30. if option = '/E' then emptyAreas = true
  31.  
  32.  
  33. if killfile='' then do
  34.    say 'please use: KILLAREA <MESSAGECTL> <KILLAREA.TXT> [/E]'
  35.    exit
  36. end
  37.  
  38.  
  39. /*  areafile exists ?  */
  40. call sysfiletree areafile,'FILE','F'
  41. if file.0=0 then do
  42.    say 'MSGAREA-File not found !'
  43.    exit
  44. end
  45.  
  46.  
  47. /*  killareafile exists ?  */
  48. call sysfiletree killfile,'FILE','F'
  49. if file.0=0 then do
  50.    say 'KILLAREA-File not found !'
  51.    exit
  52. end
  53.  
  54.  
  55. /* scan the KILLAREA.TXT  */
  56. do until lines(killfile)=0 
  57.  
  58.    line=linein(killfile)
  59.    areatag=translate(word(line,1))
  60.  
  61.    rc=sysfiledelete('MSGAREA.TMP')
  62.  
  63.    /* search 'til the specific areatag is found */
  64.    found=false
  65.    i=1
  66.    do until ((lines(areafile)=0) | (found=true))
  67.      arealine.i=linein(areafile)
  68.      if (translate(word(arealine.i, 1)) = 'MSGNAME') & (translate(word(arealine.i, 2)) = areatag) then found=true
  69.       else i=i+1
  70.    end
  71.  
  72.    if found=true then globalFound=true
  73.  
  74.    /* if the areatag not exists, just close the areafile */
  75.    if found=false then call lineout areafile
  76.    else do
  77.  
  78.       /* 'spool back' to the beginning of the area-description  */
  79.       j=i
  80.       do until translate(word(arealine.j,1)) = 'AREA'
  81.         j=j-1
  82.       end
  83.  
  84.       /* save all lines until the first area-line is reached */
  85.       k=1
  86.       do until k=j
  87.         call lineout 'MSGAREA.TMP', arealine.k
  88.         k=k+1
  89.       end
  90.  
  91.  
  92.       if emptyAreas=true then do
  93.         call lineout 'MSGAREA.TMP', arealine.k
  94.         j=j+1
  95.       end
  96.  
  97.       /* now save all previously read lines with a preceding semicolon */
  98.       do l=j to i
  99.         call lineout 'MSGAREA.TMP', insert(';',arealine.l)
  100.       end
  101.  
  102.       /* read in the missing lines of the area-description an save it as a comment */
  103.       do  until ((lines(areafile)=0) | translate(word(line,1))='END')
  104.         line=linein(areafile)
  105.         if (translate(word(line,1))='END') & (emptyAreas = true) then call lineout 'MSGAREA.TMP', line
  106.           else call lineout 'MSGAREA.TMP', insert(';',line)
  107.       end
  108.  
  109.       /* save the rest of the file without change */
  110.       do  until lines(areafile)=0
  111.         line=linein(areafile)
  112.         call lineout 'MSGAREA.TMP', line
  113.       end
  114.  
  115.       /* close file */
  116.       call lineout 'MSGAREA.TMP'
  117.       call lineout areafile
  118.  
  119.       /* temp.File = CTL-File */
  120.       '@copy ' 'MSGAREA.TMP' areafile 
  121.  
  122.    end
  123.  
  124. end
  125.  
  126. call lineout killfile
  127.  
  128. rc=sysfiledelete('MSGAREA.TMP')
  129.  
  130. if globalFound=true then exit 1
  131.   else exit 0
  132.  
  133.